classdef Etapa4 < handle
    
   properties (SetObservable)
      handles;
      fig4;
      etapas=struct; %tipo orden notch wp qp g wz
      celdas;
      selected;
       creados;
         
   end 
   properties
       
   end
   
   methods
       
       function self = Etapa4(self) %constructor
            self.creados=0;
           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
           % Initializes GUI
           
           hfig = hgload('etapa4gui.fig'); % load 'GUIDE generated' Figure.
           self.handles = guihandles(hfig); % get figure handles.
           movegui(hfig,'center')   % sets Figure position.
           self.fig4=hfig;
           set(self.fig4,'Visible','off');
           self.etapas=struct('tipodefiltro',0,'orden',0,'notch',0,'wp',0,'qp',0,'g',0,'wz',0,'H',0,'celdaspermitidas',0);
           self.celdas=CeldasClass(0,0,0,0,0);    
           imshow('logo.png','Parent',self.handles.logo);
           set(self.handles.numeroetapas,'callback', @self.numeroetapas_callback)
           set(self.handles.crearnuevacelda,'callback', @self.crearnuevacelda_callback)
           set(self.handles.analizarconvalores,'callback', @self.analizarconvalores_callback)
           
           
           
           self.selected=1;
           
       end
       
       function analizarconvalores_callback(self, varargin)
           
           if self.celdas(self.selected).tipodecelda==0
                errordlg('Primero debe crear la celda.',' Error '); 
                return
           end
           
           switch length(self.celdas(self.selected).setR)
               case 1
                   
                   str=get(self.handles.res1edit,'String');
                   seteados(1)=expression2num(str);
               case 2
                   str=get(self.handles.res1edit,'String');
                   seteados(1)=expression2num(str);
                   str=get(self.handles.res2edit,'String');
                   seteados(2)=expression2num(str);
               case 3
                   str=get(self.handles.res1edit,'String');
                   seteados(1)=expression2num(str);
                   str=get(self.handles.res2edit,'String');
                   seteados(2)=expression2num(str);
                   str=get(self.handles.res3edit,'String');
                   seteados(3)=expression2num(str);   
               case 4
                   str=get(self.handles.res1edit,'String');
                   seteados(1)=expression2num(str);
                   str=get(self.handles.res2edit,'String');
                   seteados(2)=expression2num(str);
                   str=get(self.handles.res3edit,'String');
                   seteados(3)=expression2num(str);
                   str=get(self.handles.res4edit,'String');
                   seteados(4)=expression2num(str);
               case 5
                   str=get(self.handles.res1edit,'String');
                   seteados(1)=expression2num(str);
                   str=get(self.handles.res2edit,'String');
                   seteados(2)=expression2num(str);
                   str=get(self.handles.res3edit,'String');
                   seteados(3)=expression2num(str);
                   str=get(self.handles.res4edit,'String');
                   seteados(4)=expression2num(str);
                   str=get(self.handles.res5edit,'String');
                   seteados(5)=expression2num(str);     
           end
           
           
          
           
           if ~isempty(self.celdas(self.selected).setC)
                str=get(self.handles.cap1edit,'String');
                seteados(length(self.celdas(self.selected).setR)+1)=expression2num(str);
           end
           
           
           for k=1: length(seteados)
               if seteados(k)==-1
                   errordlg('Ohh. Los valores de los componentes son incorrectos',' Error '); 
                   return 
               end
           end
           
           [self.celdas(self.selected).R,self.celdas(self.selected).C,self.celdas(self.selected).sens]=self.celdas(self.selected).generocelda(self.celdas(self.selected),seteados);
           updateE4View(self);
       end
       
       
       function crearnuevacelda_callback(self, varargin)
          %{
           if self.creados==0
                errordlg('Usted no es un Conejo. No esta habilitado para crear la celda',' Error '); 
                return 
           end
            %}
           wp=self.etapas(self.selected).wp;
           qp=self.etapas(self.selected).qp;
           g=self.etapas(self.selected).g;
           wz=self.etapas(self.selected).wz;
           celdaselected=get(self.handles.seleccionarcelda,'Value');
           tipodecelda=self.etapas(self.selected).celdaspermitidas(celdaselected);
           self.celdas(self.selected)=CeldasClass(tipodecelda,wp,qp,g,wz); 
           updateE4View(self);
           
           
       end
       
       
       
       function numeroetapas_callback(self, varargin)
           self.selected=get(self.handles.numeroetapas,'Value');
           updateE4View(self);
           %updateEtapaShow(self);
           %updatePosibilidades(self);
           
       end
       
   end
end